This invention relates in general to the field of electronics and more particularly to emulating a Universal Serial Bus (USB) host controller. The Universal Serial Bus (USB) is a host-centric bus in which the host initiates all of the transactions. USB has enjoyed broad adoption in part because it makes personal computer (PC) peripheral expansion very easy to accomplish.
Virtual devices can be used in remote administration applications in order to manage/monitor a computer system such as a server from a remote location. Some previous implementations of virtual devices have utilized a USB device core included in the management subsystem that had to be connected to the monitored system's USB host controller and controlled by firmware running on the management subsystem. Because it is a single device core, only one device can be emulated at a given time. Also, the virtual device requires real USB device hardware as well as a port on the system's USB host controller to be implemented.
For a background on the operation of a conventional USB host controller, a design guide entitled “Universal Host Controller Interface (UHCI) Design Guide,” Revision 1.1., March 1996, by Intel Corporation provides a good background on a UHCI's design and operation and is hereby incorporated by reference. A discussion on USB virtual devices can be found in U.S. Pat. No. 6,636,929, entitled “USB Virtual Devices” by Frantz et al. which is also incorporated by reference as if fully set forth herein.